$(function(){

	// 打开登录框
	$('.login_btn').click(function(){
        $('.login_form_con').show();
	})
	
	// 点击关闭按钮关闭登录框或者注册框
	$('.shutoff').click(function(){
		$(this).closest('form').hide();
	})

    // 隐藏错误
    $(".login_form #mobile").focus(function(){
        $("#login-mobile-err").hide();
    });
    $(".login_form #password").focus(function(){
        $("#login-password-err").hide();
    });

    $(".register_form #mobile").focus(function(){
        $("#register-mobile-err").hide();
    });
    $(".register_form #imagecode").focus(function(){
        $("#register-image-code-err").hide();
    });
    $(".register_form #smscode").focus(function(){
        $("#register-sms-code-err").hide();
    });
    $(".register_form #password").focus(function(){
        $("#register-password-err").hide();
    });


	$('.form_group').on('click',function(){
        $(this).children('input').focus()
    })

    $('.form_group input').on('focusin',function(){
        $(this).siblings('.input_tip').animate({'top':-5,'font-size':12},'fast')
        $(this).parent().addClass('hotline');
    })


	// 打开注册框
	$('.register_btn').click(function(){
		$('.register_form_con').show();
		generateImageCode()
	})


	// 登录框和注册框切换
	$('.to_register').click(function(){
		$('.login_form_con').hide();
		$('.register_form_con').show();
        generateImageCode()
	})

	// 登录框和注册框切换
	$('.to_login').click(function(){
		$('.login_form_con').show();
		$('.register_form_con').hide();
	})

	// 根据地址栏的hash值来显示用户中心对应的菜单
	var sHash = window.location.hash;
	if(sHash!=''){
		var sId = sHash.substring(1);
		var oNow = $('.'+sId);		
		var iNowIndex = oNow.index();
		$('.option_list li').eq(iNowIndex).addClass('active').siblings().removeClass('active');
		oNow.show().siblings().hide();
	}

	// 用户中心菜单切换
	var $li = $('.option_list li');
	var $frame = $('#main_frame');

	$li.click(function(){
		if($(this).index()==5){
			$('#main_frame').css({'height':900});
		}
		else{
			$('#main_frame').css({'height':660});
		}
		$(this).addClass('active').siblings().removeClass('active');
		$(this).find('a')[0].click()
	})

    //  登录表单提交
    $(".login_form_con").submit(function (e) {
        e.preventDefault()
        var mobile = $(".login_form #mobile").val()
        var password = $(".login_form #password").val()

        if (!mobile) {
            $("#login-mobile-err").show();
            return;
        }

        if (!password) {
            $("#login-password-err").show();
            return;
        }

        // 发起登录请求
        var params = {
            'mobile':mobile,
            'password':password
        }
        $.ajax({
            url:'/passport/login',
            // 请求方式
            type:'POST',
            // 返回数据的格式 json
            dataType:'json',
            headers:{'X-CSRFToken':getCookie('csrf_token')},
             // 请求内容
            data: JSON.stringify(params),
            // 请求内容的数据类型
            contentType: "application/json",
            success:function (dat) {
                if (dat.errno == 0){
                    alert('登录成功')
                    // 重新刷新页面
                    window.location.reload()
                }else {
                    console.log(dat.errmsg)
                    $("#login-password-err").html(dat.errmsg)
                    $("#login-password-err").show()
                }

            },
            error:function (dat) {
                alert("服务器请求超时")
            }
        })
    })


    // 注册按钮点击
    $(".register_form_con").submit(function (e) {
        // 阻止默认提交操作
        e.preventDefault()

		// 取到用户输入的内容
        var mobile = $("#register_mobile").val()
        var smscode = $("#smscode").val()
        var password = $("#register_password").val()

		if (!mobile) {
            $("#register-mobile-err").show();
            return;
        }
        if (!smscode) {
            $("#register-sms-code-err").show();
            return;
        }
        if (!password) {
            $("#register-password-err").html("请填写密码!");
            $("#register-password-err").show();
            return;
        }

		if (password.length < 6) {
            $("#register-password-err").html("密码长度不能少于6位");
            $("#register-password-err").show();
            return;
        }

        // 发起注册请求
        // 准备发送的数据，发送手机号码，短信验证码，和密码
        var params = {
		    'mobile':mobile,
            'password':password,
            'smscode':smscode
        }
       $.ajax({
        //请求的url
        url:'/passport/register',
        // 请求方式
        type:'POST',
        // 返回数据的格式 json
        dataType:'json',
        headers:{'X-CSRFToken':getCookie('csrf_token')},
         // 请求内容
        data: JSON.stringify(params),
        // 请求内容的数据类型
        contentType: "application/json",
        success:function(dat){
            if(dat.errno == 0){
               alert('注册成功')
                // # 重新加载页面
                window.location.reload()
            }else{
                $("#register-password-err").html(dat.errmsg);
                $("#register-password-err").show();
            }
        }
    })

    })
})

var imageCodeId = ""

// 生成一个图片验证码的编号，并设置页面中图片验证码img标签的src属性
function generateImageCode() {
    //生成图片验证码的编号，
    imageCodeId = generateUUID();
    var imageSrc = '/passport/image_code?code_id='+imageCodeId;
    $('.get_pic_code').attr('src',imageSrc)
}

// 发送短信验证码
function sendSMSCode() {
    // 校验参数，保证输入框有数据填写
    $(".get_code").removeAttr("onclick");
    var mobile = $("#register_mobile").val();
    if (!mobile) {
        $("#register-mobile-err").html("请填写正确的手机号！");
        $("#register-mobile-err").show();
        $(".get_code").attr("onclick", "sendSMSCode();");
        return;
    }
    var imageCode = $("#imagecode").val();
    if (!imageCode) {
        $("#register-image-code-err").html("请填写图片验证码！");
        $("#register-image-code-err").show();
        $(".get_code").attr("onclick", "sendSMSCode();");
        return;
    }
    // 发送短信验证码
    // 给后台的参数
    var params={
        // 发送电话号码
        'mobile':mobile,
        //图片验证码的内容
        'imageCode':imageCode,
        // 图片验证码的编号
        'image_code_id':imageCodeId
    }
    $.ajax({
        //请求的url
        url:'/passport/smscode',
        // 请求方式
        type:'POST',
        // 返回数据的格式 json
        dataType:'json',
        headers:{'X-CSRFToken':getCookie('csrf_token')},

         // 请求内容
        data: JSON.stringify(params),
        // 请求内容的数据类型
        contentType: "application/json",
        success:function(dat){
            if(dat.errno == 0){
                // 进行倒计时
                var num = 60;
                var timer = setInterval(function () {
                    if(num == 1){
                        clearInterval(timer);
                        $(".get_code").html('获取验证码')
                        $(".get_code").attr("onclick","sendSMSCode()");
                    }else{
                        num -= 1
                        $(".get_code").html(num + '秒')
                    }
                },1000)
            }else{
                $('#register-sms-code-err').show()
                $('#register-sms-code-err').html(dat.errmsg)
                // 将点击按钮的onclick事件函数恢复回去
                $(".get_code").attr("onclick","sendSMSCode()");
                if(dat.errno == '4004'){
                    // 从数据redis 查询数据错误,图片验证码错误
                    $("#register-image-code-err").html("图形验证码错误");
                    $("#register-image-code-err").show();
                    // $(".get_code").attr("onclick", "sendSMSCode();");
                    generateImageCode()
                }
            }
        }
    })
}

// 调用该函数模拟点击左侧按钮
function fnChangeMenu(n) {
    var $li = $('.option_list li');
    if (n >= 0) {
        $li.eq(n).addClass('active').siblings().removeClass('active');
        // 执行 a 标签的点击事件
        $li.eq(n).find('a')[0].click()
    }
}

// 一般页面的iframe的高度是660
// 新闻发布页面iframe的高度是900
function fnSetIframeHeight(num){
	var $frame = $('#main_frame');
	$frame.css({'height':num});
}

function getCookie(name) {
    var r = document.cookie.match("\\b" + name + "=([^;]*)\\b");
    return r ? r[1] : undefined;
}


// 生成图片的随机编码
function generateUUID() {
    var d = new Date().getTime();
    if(window.performance && typeof window.performance.now === "function"){
        d += performance.now(); //use high-precision timer if available
    }
    var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
        var r = (d + Math.random()*16)%16 | 0;
        d = Math.floor(d/16);
        return (c=='x' ? r : (r&0x3|0x8)).toString(16);
    });
    return uuid;
}


function logout(){
    $.ajax({
        url:'/passport/logout',
        // 请求方式
        type:'POST',
        // 返回数据的格式 json
        dataType:'json',
        headers:{'X-CSRFToken':getCookie('csrf_token')},
        // 请求内容的数据类型,
        contentType: "application/json",
        success:function (dat) {
            // 退出登录，跳转到首页 "/"
            window.location.href = '/'
        }
        
    })
}
